import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex);

//初始化总状态，值为一个对象，包含n个key-value
const state={
    sum:0,
    name:'lyx'
}

//创建一个actions，值为一个对象，包含n个响应组件”动作“得函数
const actions = {
    jia(context,value){//context是一个mini$store
        context.commit('JIA',value);
    },
    minus(context,value){
        //处理value
        context.commit('MINUS',value);
    },
    jiaOdd(context,value){//context是一个mini$store
        if(value%2===1){
            context.commit('JIA',value);
        }
    },
}

//创建一个mutations，值为一个对象，包含n个真正用于加工状态的函数
const mutations = {
    JIA(state,value){ //这里得JIA大写是为了区分action中得加
        state.sum+=value;
    },
    MINUS(state,value){
        state.sum-=value;
    }
}

//getters中配置得是经过加工后得state值-----类似于vue中得computed
const getters = {
    bigSum(state){
        return state.sum*100;
    }
}

//创建store，用于管理：state对象、action对象、mutations对象
const store = new Vuex.Store({
    state,
    actions,
    mutations,
    getters
});

export default store